package com.example.itcacp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;


/**
 * 内容评论实体类
 * */

@Data
@TableName("pc_comment")  // 对应数据库表
public class Comment {
    @TableId(type = IdType.AUTO)
    private Long commentId; // 评论Id: 自增唯一
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;  // 作者Id
    private Long targetId;  // 目标内容Id
    private Like.ContentType targetType; // 目标内容类型
    private Long parentId;  // 父评论Id用于嵌套评论
    private String content;  // 评论内容
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime created_at; // 评论时间
    /**
     * 评论作者信息
     * */
    @TableField(exist = false)
    private User user;
    /**
     * 嵌套评论列表
     * */
    @TableField(exist = false)
    private List<Comment> children;
}
